/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Felipe Duarte
 */
@Entity
@Table(name = "prefijo")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Prefijo.findAll", query = "SELECT p FROM Prefijo p"),
    @NamedQuery(name = "Prefijo.findByIdPrefijo", query = "SELECT p FROM Prefijo p WHERE p.idPrefijo = :idPrefijo"),
    @NamedQuery(name = "Prefijo.findByNombrePrefijo", query = "SELECT p FROM Prefijo p WHERE p.nombrePrefijo = :nombrePrefijo")})
public class Prefijo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "ID_PREFIJO")
    private Integer idPrefijo;
    @Size(max = 45)
    @Column(name = "NOMBRE_PREFIJO")
    private String nombrePrefijo;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPrefijo4")
    private List<Direccion> direccionList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPrefijo3")
    private List<Direccion> direccionList1;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPrefijo2")
    private List<Direccion> direccionList2;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPrefijo1")
    private List<Direccion> direccionList3;

    public Prefijo() {
    }

    public Prefijo(Integer idPrefijo) {
        this.idPrefijo = idPrefijo;
    }

    public Integer getIdPrefijo() {
        return idPrefijo;
    }

    public void setIdPrefijo(Integer idPrefijo) {
        this.idPrefijo = idPrefijo;
    }

    public String getNombrePrefijo() {
        return nombrePrefijo;
    }

    public void setNombrePrefijo(String nombrePrefijo) {
        this.nombrePrefijo = nombrePrefijo;
    }

    @XmlTransient
    public List<Direccion> getDireccionList() {
        return direccionList;
    }

    public void setDireccionList(List<Direccion> direccionList) {
        this.direccionList = direccionList;
    }

    @XmlTransient
    public List<Direccion> getDireccionList1() {
        return direccionList1;
    }

    public void setDireccionList1(List<Direccion> direccionList1) {
        this.direccionList1 = direccionList1;
    }

    @XmlTransient
    public List<Direccion> getDireccionList2() {
        return direccionList2;
    }

    public void setDireccionList2(List<Direccion> direccionList2) {
        this.direccionList2 = direccionList2;
    }

    @XmlTransient
    public List<Direccion> getDireccionList3() {
        return direccionList3;
    }

    public void setDireccionList3(List<Direccion> direccionList3) {
        this.direccionList3 = direccionList3;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idPrefijo != null ? idPrefijo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Prefijo)) {
            return false;
        }
        Prefijo other = (Prefijo) object;
        if ((this.idPrefijo == null && other.idPrefijo != null) || (this.idPrefijo != null && !this.idPrefijo.equals(other.idPrefijo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entities.Prefijo[ idPrefijo=" + idPrefijo + " ]";
    }
    
}
